Image data encoding device

ABSTRACT

Introduced in an image data encoding device is a logic-memory combined chip in which a memory device and a signal processing device are combined. A logic part and a memory part can be connected to each other with a wide bus, allowing to improve processing capability of data transfer. However, the memory part of the logic-memory combined chip has a small capacity, so that an attempt to increase the capacity will lead to upsizing of the chip, resulting in an increase in costs. Therefore, in a processing that data transfer results in bottlenecks (i.e., motion search), image data is transferred to/from an internal memory capable of transferring data at high speed. In a processing that high-speed data transfer is not required, image data is transferred to/from an external memory.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to an image data encoding device for compressing and encoding image data.

[0003] 2. Description of the Background Art

[0004] In digital audio visual apparatuses such as recordable/reproducible DVDs (Digital Versatile Discs), D-VHSs (Digital-Video Home Systems), digital broadcast transmitters and receivers and the like, the International Standard MPEG2 (Moving Picture Experts Group 2: ISO-IEC/JTC1 SC29 DIS13818, Part 2, 1994) is employed as a method of compressing image data. In an encoding process of image data based on the MPEG2 standard, there are an enormous amount of operation required for image data compression and an enormous amount of data transfer between a signal processing device and a memory device.

[0005]FIG. 20 shows a structure of a conventional image data encoding device 200. As shown in FIG. 20, the image data encoding device 200 comprises an MPEG2 processing unit 102 compressing and encoding image data and a memory interface 103 controlling data transfer. The MPEG2 processing unit 102 and the memory interface 103 are connected to each other through a bus 101. An external memory 107 provided outside such as a general purpose DRAM (Dynamic Random Access Memory) is connected to the memory interface 103 through a bus 106.

[0006] The MPEG2 processing unit 102 includes an encoder, a decoder and a motion estimation device, and an original image before data compression is inputted into the encoder as a video input 108. Image data encoded in the encoder is outputted as a bit stream output 109. The decoder decodes the encoded image data and outputs it as a video output 110 so that it can be monitored if the image data has been encoded appropriately.

[0007]FIG. 21 is a flow chart showing data transfer in an encoding process at each frame of the image data encoding device 200. First, original image data is inputted into the MPEG2 processing unit 102 as the video input 108, where the data undergoes space filtering and time filtering as preceding processes. Here, the space filtering indicates a process of filtering an image signal in the same frame to remove high-frequency noise, and the time filtering indicates a process of comparing pixels between a frame and the subsequent one to remove high-frequency noise.

[0008] The original image data having already undergone the space filtering is stored in the external memory 107 through the bus 101, the memory interface 103 and the bus 106 by each frame. In the time filtering, the MPEG2 processing unit 102 reads out image data from the external memory 107 and compares pixels between a frame and the subsequent one, thereby removing high-frequency noise.

[0009] The original image data having already undergone the preceding processes is stored in the external memory 107 through the bus 101, the memory interface 103 and the bus 106 by each frame (step S1 f).

[0010] After image data is stored for several frames, the data in the frames being images to be encoded is reordered in the sequence for subsequent motion search, and thereafter, is read out into the encoder in the MPEG2 processing unit 102 (step S2 f).

[0011] First, the encoder encodes an I (Intra) frame, and encoded information is outputted as the bit stream output 109 (step S7 f). The encoding process includes discrete cosine transformation, quantization, variable length encoding and the like. In the case of an I frame, intra-frame encoding is performed, so that motion search is not carried out.

[0012] In the decoder in the MPEG2 processing unit 102, the video output 110 is generated for monitoring the encoded data (step S8 f). Further, decoded image data is data of an image reconfigured by a series of encoding processes (reconfigured image) and is also stored in the external memory 107 through the bus 101, the memory interface 103 and the bus 106 so as to be used as a reference image for estimating a frame and the subsequent one.

[0013] Next, an encoding process of a P (Predictive) frame will be described. First, reordered image data is read out into the encoder (step S2 f). In the case of a P frame, motion search (including associated reverse quantization and reverse discrete cosine transformation) is performed in the motion estimation device based on a reconfigured image of I or P frame. The encoder configures a new image (estimation image) based on a motion vector obtained by the motion search, and thereafter, carries out encoding.

[0014] As an example of the motion search, FIG. 21 shows a case where search is performed with integer pixel accuracy to roughly estimate the motion, and thereafter, search is performed with half-pel (half pixel) accuracy to determine the motion vector with high accuracy (steps S3 f, S4 f). In either motion search, a reference image for the motion search is of I or P frame. Therefore, when generating a first P frame, for example, the reconfigured image previously reconfigured is read out from the external memory 107.

[0015] At this time, the memory interface 103 reads out image data of the reconfigured image from the external memory 107 as a reference image (search window data), and sends the image data to the MPEG2 processing unit 102. The original image data of the P frame read out from the external memory 107 in step S2 f is used in the motion estimation device as a template image to be the origin of generation of an estimation image.

[0016] The MPEG2 processing unit 102 performs motion search using the template image and the search window data, thereby obtaining the motion vector.

[0017] Subsequently, the MPEG2 processing unit 102 generates an estimation image based on the obtained motion vector (step S5 f). As the generation is based on I or P frame, the reconfigured image of the I frame is read out again from the external memory 107 when generating a first P frame, for example.

[0018] The generated estimation image is written into the external memory 107 as a reconfigured image (step S6 f), and thereafter, the encoder performs encoding. That is, the encoder reads out the reconfigured image from the external memory 107 (step S2 f) for encoding, and outputs encoded information as the bit stream output 109 (step S7 f).

[0019] As in the case of an I frame, the decoder generates the video output 110 for monitoring the encoded data (step S8 f). The reconfigured image in the external memory 107 is also used as a reference image for estimating the next frame.

[0020] In the next and later generation of P frames, data of the reconfigured image of a P frame is read out instead of that of an I frame.

[0021] Next, an encoding process of a B (Bidirectionally predictive) frame will be described. Motion search is carried out in a B frame as in a P frame to configure a new image based on a motion vector obtained by the motion search, and thereafter, encoding is performed. Thus, the flow of the chart shown in FIG. 21 is the same as that of a P frame.

[0022] In the case of a B frame, however, the motion search is performed based not only on past image data but also on future image data, resulting in an increase in the amount of the motion search in steps S3 f and S4 f (the motion search is carried out based on future image data alone for a B frame in an early stage of encoding where past image data does not exist).

[0023] As has been described, in the encoding process of image data based on the MPEG2 standard, there are enormous amounts of operations for image data compression and enormous amounts of data transfer between a signal processing device (image data encoding device 200 in FIG. 20) and a memory device (external memory 107 in FIG. 20).

[0024] In processing these enormous amounts of data, there arises a problem of how to construct the image data encoding device. In other words, a subject in system construction of the encoding device has been how to solve degradation in performance (degradation in display image quality) due to lack of processing capability and data transfer capability.

[0025] In the structure of the image data encoding device shown in FIG. 20, employment of the memory device such as a general purpose DRAM results in that the processing capability in data transfer is limited by the operational speed of input/output pins and the bus width between the memory interface 103 and the external memory 107.

[0026] For instance, MPEG2 encoding of image data at a resolution of the digital television standard SDTV (Standard Definition TV) having the same image quality as the current broadcast requires a memory having a capacity of 32 megabits or more. Further, MPEG2 encoding of image data at a resolution of HDTV (High Definition TV) having higher image quality requires a memory having a capacity of 256 megabits or more.

[0027] In order to transfer image data stored in such a large-capacity memory rapidly and effectively, it is desirable to speed up operation at input/output pins and to increase the bus width. However, when a memory device such as a general purpose DRAM is employed, such a desire is not realized immediately.

SUMMARY OF THE INVENTION

[0028] According to a first aspect of the present invention, an image data encoding device comprises: an internal memory; a memory interface that can be connected to an external memory, the memory interface being connected to the internal memory for controlling reading/writing of data with respect to the external memory and the internal memory; and an image data encoding unit in which a sequence of plural pieces of image data are inputted, performing motion search for the image data to generate an estimation image and encoding the image data using the estimation image. In the image data encoding device, the image data used as a reference image in the motion search is written into the internal memory through the memory interface.

[0029] According to a second aspect of the present invention, in the image data encoding device of the first aspect, the image data used as the reference image in the motion search is also written into the external memory through the memory interface.

[0030] According to a third aspect of the present invention, in the image data encoding device of the first or second aspect, the image data used as the reference image in the motion search is image data of a reconfigured image which is an estimation image previously generated and includes image data of a luminance signal of the reconfigured image.

[0031] According to a fourth aspect of the present invention, in the image data encoding device of the third aspect, the image data used as the reference image in the motion search further includes image data of a color-difference signal of the reconfigured image.

[0032] According to a fifth aspect of the present invention, in the image data encoding device of the first or second aspect, the image data used as the reference image in the motion search is image data of a reconfigured image which is an estimation image previously generated and includes sub-sampled image data of the reconfigured image.

[0033] According to a sixth aspect of the present invention, in the image data encoding device of the fifth aspect, full-sampled image data is written into the external memory, the motion search includes motion search with integer pixel accuracy and motion search with half-pel accuracy, the sub-sampled image data is used as a reference image in the motion search with integer pixel accuracy, and the full-sampled image data is used as a reference image in the motion search with half-pel accuracy.

[0034] According to a seventh aspect of the present invention, in the image data encoding device of the first or second aspect, the image data used as the reference image in the motion search is data of an original image of the inputted image data and includes image data of a luminance signal of the original image.

[0035] According to an eighth aspect of the present invention, in the image data encoding device of the seventh aspect, the image data used as the reference image in the motion search further includes image data of a color-difference signal of the original images.

[0036] According to a ninth aspect of the present invention, in the image data encoding device of the first or second aspect, the image data used as the reference image in the motion search is data of an original image of the image data inputted and includes sub-sampled image data of the original image.

[0037] According to a tenth aspect of the present invention, in the image data encoding device of the ninth aspect, full-sampled image data is written into the external memory, the motion search includes motion search with integer pixel accuracy and motion search with half-pel accuracy, the sub-sampled image data is used as a reference image in the motion search with integer pixel accuracy, and the full-sampled image data is used as a reference image in the motion search with half-pel accuracy.

[0038] According to an eleventh aspect of the present invention, in the image data encoding device of the first aspect, the plural pieces of image data inputted are written into the internal memory through the memory interface as an original image.

[0039] In the image data encoding device of the first aspect, the image data used as the reference image in the motion search is written into the internal memory through the memory interface. Thus, setting the bus wide between the internal memory and the memory interface allows to achieve the image data encoding device having processing capability of data transfer little limited by the use of the external memory and being capable of controlling the capacity of the internal memory for preventing an increase in costs. This enables to achieve the image data encoding device capable of transferring image data effectively and rapidly in motion search in which large amounts of data are transferred.

[0040] In the image data encoding device of the second aspect, the image data used as the reference image in the motion search is also written into the external memory through the memory interface. Thus, when it is insufficient merely to use the image data written in the internal memory at generation of an estimation image and an encoding process, the image data written in the external memory can be used as assistance.

[0041] In the image data encoding device of the third aspect, the image data used as the reference image in the motion search includes the image data of the luminance signal which is visually easy of perception, which allows the motion search to be performed with high accuracy.

[0042] In the image data encoding device of the fourth aspect, the image data used as the reference image in the motion search further includes the image data of the color-difference signal, which allows the motion search to be performed with still higher accuracy.

[0043] In the image data encoding device of the fifth aspect, the image data used as the reference image in the motion search includes the sub-sampled image data, allowing a reduction in capacity of the internal memory compared to the case of performing the motion search for the full-sampled image data and a reduction in processing time required for operation.

[0044] In the image data encoding device of the sixth aspect, the sub-sampled image data is used as the reference image in the motion search with integer pixel accuracy, and the full-sampled image data is used as the reference image in the motion search with half-pel accuracy. Therefore, an idea of a motion vector can be gained for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0045] In the image data encoding device of the seventh aspect, the image data used as the reference image in the motion search includes the image data of the luminance signal which is visually easy of perception, so that the motion search can be performed with high accuracy.

[0046] In the image data encoding device of the eighth aspect, the image data used as the reference image in the motion search further includes the image data of the color-difference signal, so that the motion search can be performed with still higher accuracy.

[0047] In the image data encoding device of the ninth aspect, the image data used as the reference image in the motion search includes the sub-sampled image data, which allows a reduction in capacity of the internal memory compared to the case of performing the motion search for the full-sampled image data and a reduction in processing time required for operation.

[0048] In the image data encoding device of the tenth aspect, the sub-sampled image data is used as the reference image in the motion search with integer pixel accuracy, and the full-sampled image data is used as the reference image in the motion search with half-pel accuracy. Therefore, an idea of a motion vector can be gained for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0049] In the image data encoding device of the eleventh aspect, the plural pieces of image data inputted are written into the internal memory through the memory interface as the original image, which allows to employ an external memory that is not very excellent in specs for the operational speed and the bus width, different from the case of writing inputted image data into the external memory.

[0050] An object of the present invention is to provide an image data encoding device capable of transferring image data effectively and rapidly.

[0051] These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0052]FIG. 1 shows an image encoding device according to a first preferred embodiment of the invention;

[0053]FIG. 2 is a detailed view showing a structure of an MPEG2 processing unit 102 and a memory interface 103 in the image encoding device of the first embodiment;

[0054]FIG. 3 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device of the first embodiment;

[0055]FIG. 4 shows an exemplary memory map of an internal memory 104 in the image encoding device of the first embodiment;

[0056]FIG. 5 shows an exemplary memory map of an external memory 107 in the image encoding device of the first embodiment;

[0057]FIG. 6 is a timing chart showing the encoding sequence of I, P and B frames and storage of image data to be used for estimation into a memory in the image encoding device of the first embodiment;

[0058]FIG. 7 shows an exemplary memory map of the internal memory 104 in the image encoding device of a second preferred embodiment of the invention;

[0059]FIG. 8 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device of a third preferred embodiment of the invention;

[0060]FIG. 9 shows an exemplary memory map of the internal memory 104 in the image encoding device of the third embodiment;

[0061]FIG. 10 shows an exemplary memory map of the internal memory 104 in the image encoding device of a fourth preferred embodiment of the invention;

[0062]FIG. 11 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device of a fifth preferred embodiment of the invention;

[0063]FIG. 12 shows an exemplary memory map of the internal memory 104 in the image encoding device of the fifth embodiment;

[0064]FIG. 13 shows an exemplary memory map of the internal memory 104 in the image encoding device of a sixth preferred embodiment of the invention;

[0065]FIG. 14 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device of a seventh preferred embodiment of the invention;

[0066]FIG. 15 shows an exemplary memory map of the internal memory 104 in the image encoding device of the seventh embodiment;

[0067]FIG. 16 shows an exemplary memory map of the internal memory 104 in the image encoding device of an eighth preferred embodiment of the invention;

[0068]FIG. 17 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device of a ninth preferred embodiment of the invention;

[0069]FIG. 18 shows an exemplary memory map of the internal memory 104 in the image encoding device of the ninth embodiment;

[0070]FIG. 19 shows an exemplary memory map of the external memory 107 in the image encoding device of the ninth embodiment;

[0071]FIG. 20 shows a conventional image data encoding device; and

[0072]FIG. 21 is a flow chart showing data transfer in an encoding process at each frame of the conventional image encoding device.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0073] <First Preferred Embodiment>

[0074] In the present embodiment, a logic-memory combined chip in which a memory device and a signal processing device (logic device) are combined is introduced into an image data encoding device, to thereby achieve the image data encoding device having processing capability of data transfer little limited by the use of an external memory and being capable of transferring image data effectively and rapidly.

[0075] In the case of the logic-memory combined chip, a logic part and a memory part can be connected to each other with a wide bus, allowing to improve processing capability of data transfer. However, the memory part of the logic-memory combined chip has a smaller capacity than that of a general purpose DRAM, so that an attempt to increase the capacity will lead to upsizing of the chip, resulting in an increase in costs.

[0076] Accordingly, the present invention employs a memory division method in which a memory required for encoding and motion search is divided into an external memory connected to the outside and an internal memory provided on the logic-memory combined chip, and either the external memory or the internal memory is used as required.

[0077] More specifically, in a processing that data transfer results in bottlenecks, image data is transferred to/from the internal memory capable of transferring data at high speed. In a processing that high-speed data transfer is not required, image data is transferred to/from the external memory.

[0078]FIG. 1 shows a structure of an image data encoding device 100 according to the present embodiment. As shown in FIG. 1, the image data encoding device 100 comprises the MPEG2 processing unit 102 compressing and encoding inputted image data, the memory interface 103 controlling data transfer and an internal memory 104 such as an integral DRAM. The MPEG2 processing unit 102 and the memory interface 103 are connected to each other through the bus 101. The internal memory 104 is connected to the memory interface 103 through a bus 105. The external memory 107 provided outside such as a general purpose DRAM is connected to the memory interface 103 through the bus 106.

[0079] The bus 105 connected to the internal memory 104 is assumed to have a width of 128 bits, 256 bits, 512 bits, 1024 bits, etc., for example. The bus 106 connected to the external memory 107 is substantially assumed to have a width of 16 bits, 32 bits, 64 bits, etc., for example, because of limitations in the number of I/O pins of the external memory 107.

[0080]FIG. 2 is a detailed view showing the structure of the MPEG2 processing unit 102 and the memory interface 103. The MPEG2 processing unit 102 includes a motion estimation device 102 a and an encoder/decoder 102 b. An original image before data compression is inputted into the encoder 102 b as the video input 108. The original image is a video signal converted to digital form, which is in compliance with ITU-R-656 form, for example.

[0081] Image data encoded in the encoder is outputted as the bit stream output 109. The decoder decodes the encoded image data and outputs it as the video output 110 so that it can be monitored if the image data has been encoded appropriately.

[0082] The memory interface 103 includes an internal memory controlling circuit 103 a for controlling data transfer to/from the internal memory 104 and an external memory controlling circuit 103 b for controlling data transfer to/from the external memory 107. The internal memory controlling circuit 103 a is connected to the motion estimation device 102 a and the encoder/decoder 102 b in the MPEG2 processing unit 102 through buses 101 a to 101 c. The external memory controlling circuit 103 b is also connected to the motion estimation device 102 a and the encoder/decoder 102 b in the MPEG2 processing unit 102 through buses 101 d to 101 f.

[0083]FIG. 3 is a flow chart showing data transfer in an encoding process at each frame in the image data encoding device 100. First, original image data is inputted into the MPEG2 processing unit 102 as the video input 108, where the data undergoes the space filtering and time filtering as the preceding processes in the encoder.

[0084] The original image data having already undergone the space filtering is stored in the external memory 107 through the bus 101, the memory interface 103 and the bus 106 by each frame. In the time filtering, the MPEG2 processing unit 102 reads out image data from the external memory 107 and compares pixels between a frame and the subsequent one, thereby removing high-frequency noise.

[0085] The original image data having already undergone the preceding processes is stored in the external memory 107 through the bus 101, the memory interface 103 and the bus 106 by each frame (step S1 a).

[0086] After image data is stored for several frames, the data in the frames being images to be encoded is reordered in the sequence for subsequent motion search, and thereafter, is read out into the encoder in the MPEG2 processing unit 102 (step S2 a).

[0087] The encoder performs an encoding process of an I frame, and encoded information is outputted as the bit stream output 109 (step S7 a). The encoding process includes discrete cosine transformation, quantization, variable length encoding and the like. In the case of an I frame, intra-frame encoding is performed, so that motion search is not carried out.

[0088] In the decoder in the MPEG2 processing unit 102, the video output 110 is generated for monitoring the encoded data (step S8 a). Further, decoded image data is stored in the external memory 107 as a reconfigured image and is used as a reference image for estimating a frame and the subsequent one.

[0089] In the present embodiment, a reconfigured image written in the internal memory is used as a reference image for motion search, and image data of a luminance (Y) signal in image data of an I frame is written into the internal memory 104. The reason for writing the image data of the luminance signal is that the luminance signal is more visually perceptible than a color-difference (Cb, Cr) signal, and the use of the luminance signal allows motion search to be performed with high accuracy.

[0090] Further, writing image data into the internal memory 104 is for achieving high-speed data transfer by transferring image data to/from the internal memory, since there are large amounts of data transfer particularly in the motion search in the MPEG2 encoding process.

[0091] The encoding process requires not only image data of the luminance signal but also that of the color-difference signal in a reconfigured image of an I frame, so that the image data of the both signals is also stored in the external memory 107.

[0092]FIGS. 4 and 5 show exemplary memory maps of the image data of the luminance (Y) signal and the color-difference (Cb, Cr) signal. FIG. 4 is an exemplary memory map of the internal memory 104, and FIG. 5 is an exemplary memory map of the external memory 107.

[0093] As shown in FIG. 4, stored in a storage area AR1 a is only image data #1 (Y) of the luminance signal of the reconfigured image of a frame, and there is indicated “Reserved” for the image data of the color-difference signal. Similarly, stored in a storage area AR2 a is only image data #2 (Y) of the luminance signal in the reconfigured image of another frame, and there is indicated “Reserved” for the image data of the color-difference signal.

[0094] On the other hand, as shown in FIG. 5, stored in a storage area AR1 b is image data #1 (Y) of the luminance signal and image data #1 (Cb, Cr) of the color-difference signal of the reconfigured image of a frame. Similarly, stored in a storage area AR2 b is image data #2 (Y) of the luminance signal and image data #2 (Cb, Cr) on the color-difference signal of the reconfigured image of another frame.

[0095] Areas other than the storage areas AR1 a and AR2 a of the internal memory 104 are indicated as “Reserved”, and data #1 (Y), #1 (Cb, Cr) to #4(Y), #4(Cb, Cr) of the inputted original image is stored in storage areas AR3 b to AR6 b of the external memory 107, respectively. Areas other than the storage areas AR1 b to AR6 b are indicated as “Reserved”.

[0096] Next, an encoding process of a P frame will be described. First, reordered image data is read out into the encoder (step S2 a). In the case of a P frame, motion search (including associated reverse quantization and reverse discrete cosine transformation) is performed at the motion estimation device 102 a based on a reconfigured image of I or P frame. The encoder configures a new image (estimation image) based on a motion vector obtained by the motion search, and thereafter, carries out encoding.

[0097] As an example of the motion search, FIG. 3 shows a case where search is performed with integer pixel accuracy to roughly estimate motion, and then, search is performed with half-pel (half pixel) accuracy to determine the motion vector with high accuracy (steps S3 a, S4 a). A reference image used in either motion search is of I or P frame. Therefore, when generating a first P frame, for example, image data of the luminance signal of the reconfigured image of the I frame previously reconfigured is read out from the internal memory 104.

[0098] At this time, the memory interface 103 reads out image data of the luminance signal from the internal memory 104 as a reference image (search window data) used in motion search, and sends the image data to the motion estimation device 102 a. Original image data of a P frame read out from the external memory 107 in step S2 a is used in the motion estimation device 102 a as a template image.

[0099] Appropriate control of the internal memory controlling circuit 103 a and the external memory controlling circuit 103 b in the memory interface 103 allows data transfer from the both memories in steps S2 a to S4 a to be performed almost simultaneously. At this time, if the bus between the internal memory 104 and the memory interface 103 is set wide, the search window data can be transferred within an allowable cycle. This allows image data transfer to be performed effectively and rapidly in motion search in which large amounts of data are transferred.

[0100] Then, the motion estimation device 102 a performs motion search using the template image and the search window data, thereby obtaining the motion vector.

[0101] Subsequently, the motion estimation device 102 a generates an estimation image based on the obtained motion vector (step S5 a). As the generation is based on I or P frame, the reconfigured image of the I frame is read out again from the memory when generating a first P frame, for example.

[0102] Since the image data of the luminance signal has already been stored in the internal memory 104 by the above reading, the image data of the luminance signal is read out from the internal memory 104 and that of the color-difference signal is read out from the external memory 107.

[0103] In this way, the image data of the luminance signal used as a reference image in the motion search has also been written into the external memory 107. Thus, when it is insufficient merely to use image data in the internal memory 104 at generation of an estimation image and an encoding process, image data written in the external memory 107 can be used as assistance.

[0104] The generated estimation image is written into the internal memory 104 and the external memory 107 as a reconfigured image (step S6 a), and thereafter, the encoder performs encoding. That is, a reconfigured image written in the internal memory 104 and the external memory 107 is used for the next motion search. The encoder reads out the reconfigured image from the external memory 107 (step S2 a) for encoding, and outputs encoded information as the bit stream output 109 (step S7 a).

[0105] As in the case of an I frame, the decoder generates the video output 110 for monitoring the encoded data (step S8 a).

[0106] In the next and later generation of a P frame, data of the reconfigured image of a P frame is read out instead of that of an I frame.

[0107] Next, an encoding process of a B frame will be described. Motion search is carried out for a B frame as in a P frame to configure a new image based on a motion vector obtained by the motion search, and thereafter, encoding is performed. Thus, the flow of the chart in FIG. 3 is the same as that in a P frame.

[0108] In the case of a B frame, however, the motion search is performed based not only on past image data but also on future image data, resulting in an increase in the processing amount of motion search in steps S3 a and S4 a. (However, the motion search is carried out based on future image data alone with respect to a B frame in an early stage of encoding where past image data does not exist.)

[0109] Referring now to the timing chart of FIG. 6, the encoding sequence of I, P and B frames and storage of image data to be used for estimation into a memory will be described. In FIG. 6, types of frames are indicated by I, P and B, and numbers following them show the sequence of the frames.

[0110] As shown in the chart of the encoding sequence, the frames are reordered in the sequence and encoding is started from the I frame. Here, a frame I3 as the third frame is encoded first. Then, data of a reconfigured image of the frame I3 is stored as storage data #1 in the memory (#corresponds to that in FIGS. 4 and 5).

[0111] Next, using the data of the reconfigured image of the I3 frame, a frame B1 as the first frame is encoded. Since any frame that is to be past information has not been obtained by that time, the frame B1 is encoded using the frame I3 alone as future frame information.

[0112] Subsequently, a frame B2 as the second frame is similarly encoded using the data of the reconfigured image of the I3 frame.

[0113] Next, using the data of the reconfigured image of the I3 frame, a frame P6 as the sixth frame is encoded. Then, data of a reconfigured image of the frame P6 is stored as storage data #2 in the memory (#2 corresponds to that in FIGS. 4 and 5).

[0114] Next, using the data of the reconfigured images of the frames I3 and P6, a frame B4 as the fourth frame is encoded. At this time, encoding is performed using the frame I3 as past frame information and the frame P6 as future frame information.

[0115] Subsequently, a flame B5 as the fifth frame is similarly encoded using the data of the reconfigured images of the frames I3 and P6.

[0116] Next, using the data of the reconfigured image of the frame P6, a frame P9 as the ninth frame is encoded. Then, data of a reconfigured image of the frame P9 is stored as the storage data #1 in the memory.

[0117] Next, using the data of the reconfigured images of the frames P6 and P9, a frame B7 as the seventh frame is encoded. At this time, encoding is performed using the frame P6 as past frame information and the frame P9 as future frame information.

[0118] Subsequently, a flame B8 as the eighth frame is similarly encoded using the data of the reconfigured images of the frames P6 and P9.

[0119] The above operations are repeated in the same way to perform encoding.

[0120] According to the image data encoding device of the present embodiment, the image data to undergo motion search (a reconfigured image of a luminance signal in the present embodiment) is written into the internal memory 104. Thus, setting the bus wide between the internal memory 104 and the memory interface 103 allows to achieve the image data encoding device having processing capability of data transfer little limited by the use of the external memory 107 and being capable of controlling the capacity of the internal memory 104 for preventing an increase in costs. This enables to achieve the image data encoding device capable of transferring image data effectively and rapidly in motion search in which large amounts of data are transferred.

[0121] Table 1 shows an example that there are larger amounts of data transfer in motion search than in other processes, citing exemplary numerical values. The following document is cited for reference in connection with Table 1: “A single-Chip MPEG-2 422P@ML Video, Audio, and System Encoder with a 162 MHz Media-Processor Core and Dual Motion Estimation Cores”, IEICE Trans. Electron., vol. E84-C. No.1, pp.108-122, Jan. 2001. TABLE 1 External memory Internal memory Type of transfer (assuming 32 bit bus) (assuming 32 bit bus) {circle over (1)}original image data 176 (cycle/MB) capturing {circle over (2)}timing filter 176 (cycle/MB) {circle over (3)}reading of image to be 104 (cycle/MB) encoded {circle over (4)}motion search 656 (cycle/MB) (integer accuracy search) {circle over (5)}motion search (included in the (half-pel search) following transfer) {circle over (6)}generation of estimation 176 (cycle/MB) 384 (cycle/MB) image {circle over (7)}writing of reconfigured 104 (cycle/MB) image {circle over (8)}reading of encoded data 162 (cycle/MB) {circle over (9)}decoded image 176 (cycle/MB)

[0122] In Table 1, “cycle” indicates the number of clock cycles required for data transfer, while “MB” indicates macro block. The above data shows exemplary numerical values assumed in the case of MP@ML (Main Profile at Main Level). Of course, these values increase or decrease in accordance with the setting of a range of motion estimation.

[0123] As apparent from Table 1, the amount of data transfer in the motion search (integer accuracy search and half-pel search) is larger than that in other processes. Here, the motion search of the half-pel search is included in the data transfer in generation of an estimation image as it can be performed at data transfer in generating the estimation image.

[0124] In the MPEG2 standard, the number of frames per second is 30. Thus, the number of pixels is 720×480 in the case of MP@ML, so that 45 MB×30 MB×30 frames=40500 MB are processed in 16×16 macro blocks for a second.

[0125] Here, the total amount of data transfer is 1074 cycle/MB (total amount of data transfer by the external memory)+1040 cycle/MB (total amount of data transfer by the internal memory)=2114 cycle/MB multiplied by 40500 MB, that is, 85.6 megacycle.

[0126] If all image data in the encoding process is mapped in the external memory, all data transfer has to be carried out through a single port, resulting in bottlenecks. In other words, since at least 85.6 megacycles are necessary as data transfer cycle, a high speed external memory operated at around 100 MHz becomes necessary, considering the overhead in transfer control as well.

[0127] The separate provision of the internal memory and the external memory as in the present embodiment results in 1074 cycle/MB×40500 MB=43.5 megacycles for the external memory and 1040 cycle/MB×40500 MB=42.1 megacycles for the internal memory. Thus, in this case, a medium or low speed external memory can be used as the external memory. Further, the bus between the internal memory and the memory interface can easily be increased in width, so that motion search and generation of an estimation image using the internal memory do not cause bottlenecks in data transfer by the external memory. This allows motion search to be carried out with high accuracy, for example, allowing motion search in a wider range.

[0128] <Second Preferred Embodiment>

[0129] The present embodiment is a modification of the image data encoding device of the first embodiment, in which image data of a color-difference signal is further added to image data used as a reference image in motion search.

[0130] In the present embodiment, image data of a color (Cb, Cr) signal of a reconfigured image is also stored in the area indicated as “Reserved” in the internal memory 104 as shown in FIG. 7. More specifically, when generating reconfigured images of I and P frames, image data of the luminance signal and color-difference signal of the reconfigured images is stored in the internal memory 104 for use in motion search at the next frame.

[0131] As described above, if image data used as a reference image in motion search includes image data of a color-difference signal, the motion search can be performed with higher accuracy.

[0132] Since the other structures and data transfer are the same as in the image data encoding device of the first embodiment, a repeated explanation is omitted.

[0133] <Third Preferred Embodiment>

[0134] The present embodiment is another modification of the image data encoding device of the first embodiment, in which sub-sampled image data is used for the motion search with integer pixel accuracy, and full-sampled image data is used for the motion search with half-pel accuracy.

[0135] Sub-sampling is a method of thinning out pixels by sampling every other pixel, for example. Although image data is lowered in accuracy, this method allows to reduce the capacity of image data and to reduce operating time.

[0136]FIG. 8 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device according to the present embodiment. Steps S1 b through S8 b are almost the same as steps S1 a through S8 a shown in FIG. 3, except a difference that image data read out for the motion search with half-pel accuracy in step S4 b is positioned in the external memory, not in the internal memory.

[0137] When generating reconfigured images of I and P frames in the present embodiment, image data is stored in the internal memory 104 in the condition that pixels have been thinned out by sub-sampling. Assuming that the sub-sampling rates are ½, ¼, ⅛, for example, capacities of the internal memory 104 required for storing the reconfigured images will be ½, ¼ and {fraction (1/8)}, respectively.

[0138]FIG. 9 shows an exemplary memory map of a reconfigured image in the internal memory 104 according to the present embodiment. As shown in FIG. 9, image data of a luminance (Y) signal of a sub-sampled reconfigured image is stored in the internal memory 104.

[0139] The image data is used as a reference image when performing the motion search with integer pixel accuracy in step S3 b. On the other hand, in the motion search with half-pel accuracy in step S4 b, the full-sampled image data is read out from the external memory 107 and used as a reference image.

[0140] In the present embodiment, the sub-sampled image data is used as a reference image in the motion search with integer pixel accuracy, which allows a reduction in capacity of the internal memory compared to the case of performing motion search for the full-sampled image data and allows a reduction in processing time required for operation.

[0141] In the motion search with half-pel accuracy, the full-sampled image data is used as a reference image. Therefore, an idea of a motion vector can be gained for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0142] Since the other structures and data transfer are the same as in the image data encoding device of the first embodiment, a repeated explanation is omitted.

[0143] <Fourth Preferred Embodiment>

[0144] The present embodiment is a combination of the second and third embodiments. That is, image data of a color-difference signal is also added to image data to undergo motion search, and sub-sampled data is also used for the image data of the color-difference signal.

[0145] Namely, in the present embodiment, image data of a color-difference (Cb, Cr) signal of a reconfigured image is stored in a sub-sampled state in the area indicated as “Reserved” in the internal memory 104, as shown in FIG. 10. More specifically, when generating reconfigured images of I and P frames, image data of the luminance signal and color-difference signal of the reconfigured images which has undergone sub-sampling is stored in the internal memory 104 for use as a reference image in motion search at the next frame.

[0146] As has been described, if image data to undergo motion search includes image data of the color-difference signal, the motion search can be performed with higher accuracy. If the image data has been sub-sampled, the internal memory can be reduced in capacity compared to the case of performing motion search for a full-sampled image data, and processing time required for operation can be reduced.

[0147] With a full-sampled image data used in the motion search with half-pel accuracy, a guess can be made at a motion vector for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0148] <Fifth Preferred Embodiment>

[0149] The present embodiment is still another modification of the image data encoding device according to the first embodiment, in which image data of an inputted original image, not a reconfigured image, is used as a reference image in motion search.

[0150]FIG. 11 is a flow chart showing data transfer in the present embodiment. First, original image data is inputted into the MPEG2 processing unit 102 as the video input 108, where the data undergoes the space filtering and time filtering in the encoder as the preceding processes.

[0151] The original image data already undergone the preceding processes is stored in the external memory 107 by each frame and also in the internal memory 104 by each frame (step S1 c). For instance, one frame is preferably stored alternately in the external memory 107 and the internal memory 104. Stored in the internal memory 104 is image data of a luminance signal of an original image.

[0152] After image data is stored in the external memory 107 for several frames, the data in the frames being images to be encoded is reordered in the sequence for subsequent motion search, and thereafter, is read out into the encoder in the MPEG2 processing unit 102 (step S2 c).

[0153] The encoder first performs an encoding process of an I frame, and encoded information is outputted as the bit stream output 109 (step S7 c). In the case of an I frame, intra-frame encoding is performed, so that motion search is not carried out.

[0154] In the decoder in the MPEG2 processing unit 102, the video output 110 is generated for monitoring the encoded data (step S8 c). Further, decoded image data is stored in the external memory 107 as a reconfigured image and is used for estimating a frame and the subsequent one.

[0155] In the present embodiment, image data of a luminance signal of an original image is used as a reference image for motion search.

[0156] An encoding process requires image data of a luminance signal and that of a color-difference signal of a reconfigured image of an I frame, so that image data of the both signals is stored in the external memory 107.

[0157]FIG. 12 shows an exemplary memory map of image data of the luminance (Y) signal in the internal memory 104.

[0158] As shown in FIG. 12, stored in the storage area AR1 a is only the image data #1 (Y) of the luminance signal of the original image, and there is indicated “Reserved” for image data of the color-difference signal. Similarly, stored in the storage area AR2 a is only image data #2 (Y) of the luminance signal of the original image, and there is indicated “Reserved” for the image data of the color-difference signal.

[0159] Areas other than the storage areas AR1 a and AR2 a in the internal memory 104 are indicated as “Reserved”.

[0160] The encoding process of P and B frames is the same as that in the image data encoding device of the first embodiment except that the image data of the original image is used as the reference image in the motion search instead of that of the reconfigured image and either the original image or the reconfigured image is used as the template image.

[0161] Since the other structures and data transfer are the same as in the image data encoding device of the first embodiment, a repeated explanation is omitted.

[0162] As described above, motion search may be carried out using the image data of the original image instead of that of the reconfigured image.

[0163] <Sixth Preferred Embodiment>

[0164] The present embodiment is a modification of the image data encoding device according to the fifth embodiment, in which the image data used as the reference image in motion search further includes the image data of the color-difference signal of the original image.

[0165] In the present embodiment, the image data of the color-difference (Cb, Cr) signal of the original image is also stored in the area indicated as “Reserved” in the internal memory 104 as shown in FIG. 13. More specifically, the image data of the luminance signal and that of the color-difference signal of the original image is stored in the internal memory 104 for use as the reference image in motion search at the next frame.

[0166] As described above, if image data to undergo motion search further includes the image data of the color-difference signal, the motion search can be performed with higher accuracy.

[0167] Since the other structures and data transfer are the same as in the image data encoding device of the fifth embodiment, a repeated explanation is omitted.

[0168] <Seventh Preferred Embodiment>

[0169] The present embodiment is another modification of the image data encoding device according to the fifth embodiment, in which sub-sampled image data is used as the image data of the original image used as the reference image in the motion search with integer pixel accuracy, and full-sampled image data is used as the image data of the original image used as the reference image in the motion search with half-pel accuracy.

[0170]FIG. 14 is a flow chart showing data transfer in an encoding process at each frame of the image encoding device according to the present embodiment. Steps S1 d through S8 d are almost the same as steps S1 c through S8 c shown in FIG. 11, except a difference that image data read out for the motion search with half-pel accuracy in step S4 d is positioned in the external memory, not in the internal memory.

[0171] In the present embodiment, the image data of the original image is stored in the internal memory 104 in the condition that pixels have been thinned out by sub-sampling. Assuming that the sub-sampling rates are ½, ¼, ⅛, for example, capacities of the internal memory 104 required for storing the original image will be ½, ¼ and ⅛, respectively.

[0172]FIG. 15 shows an exemplary memory map of the original image in the internal memory 104 according to the present embodiment. As shown in FIG. 15, the image data of the luminance (Y) signal of the sub-sampled original image is stored in the internal memory 104.

[0173] The image data is then used as the reference image when performing the motion search with integer pixel accuracy in step S3 d. On the other hand, in the motion search with half-pel accuracy in step S4 d, the full-sampled image data is read out from the external memory 107 and used as the reference image.

[0174] In the present embodiment, the sub-sampled image data is used as the reference image in the motion search with integer pixel accuracy, which allows a reduction in capacity of the internal memory compared to the case of performing motion search for the full-sampled image data and allows a reduction in processing time required for operation.

[0175] In the motion search with half-pel accuracy, the full-sampled image data is used as the reference image. Therefore, an idea of a motion vector can be gained for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0176] Since the other structures and data transfer are the same as in the image data encoding device of the fifth embodiment, a repeated explanation is omitted.

[0177] <Eighth Preferred Embodiment>

[0178] The present embodiment is a combination of the sixth and seventh embodiments. That is, the image data of the original image used as the reference image in the motion search further includes the image data of the color-difference signal, and the sub-sampled data is also used for the image data of the color-difference signal.

[0179] Namely, in the present embodiment, the image data of the color-difference (Cb, Cr) signal of the original image is stored in a sub-sampled state in the area indicated as “Reserved” in the internal memory 104, as shown in FIG. 16. More specifically, when storing the original image, the image data of the luminance signal and that of the color-difference signal of the original image which has undergone sub-sampling is stored in the internal memory 104 for use in motion search at the next frame.

[0180] As has been described, if image data to undergo motion search includes the image data of the color-difference signal, the motion search can be performed with higher accuracy, and if the image data has been sub-sampled, the internal memory can be reduced in capacity compared to the case of performing motion search for the full-sampled image data, and processing time required for operation can be reduced.

[0181] If the full-sampled image data is used in the motion search with half-pel accuracy as in the seventh embodiment, an idea of a motion vector can be gained for a short operating time in the motion search with integer pixel accuracy, and the motion vector can be obtained accurately in the motion search with half-pel accuracy.

[0182] <Ninth Preferred Embodiment>

[0183] The present embodiment is a modification of the image data encoding device according to the sixth embodiment, in which the image data used as the reference image in the motion search further includes the image data of the color-difference signal of the original image, and further, the internal memory has a larger capacity than in the sixth embodiment so that the image data of the original image is written into the internal memory through the memory interface.

[0184]FIG. 17 is a flow chart showing data transfer according to the present embodiment. First, the original image data is inputted into the MPEG2 processing unit 102 as the video input 108, where the data undergoes the space filtering and time filtering in the encoder as the preceding processes.

[0185] The original image data already undergone the preceding processes is stored by each frame in the internal memory 104, not in the external memory 107. The internal memory has a larger capacity than in the sixth embodiment to such an extent that plural pieces of original image data can be stored. Stored in the internal memory 104 is the image data of the luminance signal and that of the color-difference signal of the original image.

[0186] After image data is stored for several frames, the data in the frames being images to be encoded is reordered in the sequence for subsequent motion search, and thereafter, is read out into the encoder in the MPEG2 processing unit 102 (step S2 e).

[0187] The encoder performs an encoding process of an I frame, and encoded information is outputted as the bit stream output 109 (step S7 e). In the case of an I frame, intra-frame encoding is performed, so that motion search is not carried out.

[0188] In the decoder in the MPEG2 processing unit 102, the video output 110 is generated for monitoring the encoded data (step S8 e). Further, decoded image data is stored in the external memory 107 as the reconfigured image and are used for estimating a frame and the subsequent one.

[0189] In the present embodiment, the image data of the luminance signal and that of the color-difference signal of the original image is used for the reference image in motion search.

[0190] The encoding process requires image data of the luminance signal and that of the color-difference signal of the reconfigured image of an I frame, so that image data of the both signals is stored in the external memory 107.

[0191]FIGS. 18 and 19 show exemplary memory maps of the image data of the luminance (Y) signal and that of the color-difference (Cb, Cr) signal. FIG. 18 is an exemplary memory map of the internal memory 104, and FIG. 19 is an exemplary memory map of the external memory 107.

[0192] As shown in FIG. 18, stored in the storage area AR1 a is image data #1 (Y) on the luminance signal and image data #1 (Cb, Cr) of the color-difference signal of the original image. Similarly, stored in the storage areas AR2 a through AR4 a is image data #2 (Y) through #4 (Y) of the luminance signal and image data #2 (Cb, Cr) through (Cb, Cr) of the color-difference signal of the original image.

[0193] On the other hand, as shown in FIG. 19, stored in the storage area AR1 b is image data #1 (Y) of the luminance signal and image data #1 (Cb, Cr) of the color-difference signal of the reconfigured image. Similarly, stored in the storage area AR2 b is image data #2 (Y) through #4 (Y) of the luminance signal and image data #2 (Cb, Cr) through #4 (Cb, Cr) of the color-difference signal of the reconfigured image.

[0194] Areas other than the storage areas AR1 a and AR4 a of the internal memory 104 are indicated as “Reserved”, and areas other than the storage areas AR1 b and AR2 b are indicated as “Reserved”.

[0195] The encoding process of P and B frames is the same as that in the image data encoding device of the sixth embodiment except that the image data of the original image is used as the reference image in the motion search instead of that of the reconfigured image and either the original image or the reconfigured image is used as the template image.

[0196] Since the other structures and data transfer are the same as in the image data encoding device of the sixth embodiment, a repeated explanation is omitted.

[0197] As has been described, motion search may be carried out using the image data of the original image instead of that of the reconfigured image.

[0198] According to the image data encoding device of the present embodiment, inputted plural pieces of image data are written into the internal memory through the memory interface as the original image, which allows to employ an external memory that is not very excellent in specs for the operational speed and the bus width, different from the case of writing inputted image data into the external memory.

[0199] While the invention has been shown and described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is therefore understood that numerous modifications and variations can be devised without departing from the scope of the invention. 

What is claimed is:
 1. An image data encoding device comprising: an internal memory; a memory interface that can be connected to an external memory, said memory interface being connected to said internal memory for controlling reading/writing of data with respect to said external memory and said internal memory; and an image data encoding unit in which a sequence of plural pieces of image data are inputted, performing motion search for said image data to generate an estimation image and encoding said image data using said estimation image, wherein said image data used as a reference image in said motion search is written into said internal memory through said memory interface.
 2. The image data encoding device according to claim 1, wherein said image data used as said reference image in said motion search is also written into said external memory through said memory interface.
 3. The image data encoding device according to claim 1, wherein said image data used as said reference image in said motion search is image data of a reconfigured image which is an estimation image previously generated and includes image data of a luminance signal of said reconfigured image.
 4. The image data encoding device according to claim 3, wherein said image data used as said reference image in said motion search further includes image data of a color-difference signal of said reconfigured image.
 5. The image data encoding device according to claim 1, wherein said image data used as said reference image in said motion search is image data of a reconfigured image which is an estimation image previously generated and includes sub-sampled image data of said reconfigured image.
 6. The image data encoding device according to claim 5, wherein full-sampled image data is written into said external memory, said motion search includes motion search with integer pixel accuracy and motion search with half-pel accuracy, said sub-sampled image data is used as a reference image in said motion search with integer pixel accuracy, and said full-sampled image data is used as a reference image in said motion search with half-pel accuracy.
 7. The image data encoding device according to claim 1, wherein said image data used as said reference image in said motion search is data of an original image of said inputted image data and includes image data of a luminance signal of said original image.
 8. The image data encoding device according to claim 7, wherein said image used as said reference image in said motion search further includes image data of a color-difference signal of said original images.
 9. The image data encoding device according to claim 1, wherein said image data used as said reference image in said motion search is data of an original image of said image data inputted and includes sub-sampled image data of said original image.
 10. The image data encoding device according to claim 9, wherein full-sampled image data is written into said external memory, said motion search includes motion search with integer pixel accuracy and motion search with half-pel accuracy, said sub-sampled image data is used as a reference image in said motion search with integer pixel accuracy, and said full-sampled image data is used as a reference image in said motion search with half-pel accuracy.
 11. The image data encoding device according to claim 1, wherein said plural pieces of image data inputted are written into said internal memory through said memory interface as an original image. 